package com.bkgy.modular.rollwlcc.dao;

import com.bkgy.modular.rollwlcc.entity.RollWlcc;
import com.bkgy.modular.rollwlcc.entity.RollWlcche;
import com.bkgy.modular.rollwlcc.entity.TEST1;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 新全生命周期dao接口
 *
 * @author 生成器生成
 * @date 2021-01-11 10:56:05
 */
@Mapper
public interface RollWlccDao {

    /**
     * 添加记录
     *
     * @param rollWlcc 对象实体
     */
    void insertDataRollWlcc(RollWlcc rollWlcc);

    /**
     * 根据主键删除对象
     *
     * @param indocno 对象主键
     */
    void deleteDataRollWlccOne(@Param("indocno") Long indocno);

    /**
     * 删除多个对象
     *
     * @param value sql语句
     */
    void deleteDataRollWlccMany(String value);

    /**
     * 修改记录
     *
     * @param rollWlcc 对象实体
     */
    void updateDataRollWlcc(RollWlcc rollWlcc);


    /**
     * 分页查看查看记录
     *
     * @param pageIndex 第几页
     * @param pageSize  每页总数
     * @param oc
     * @return 对象数据集合
     */
    List<RollWlcc> findDataRollWlccByPage(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("roll_no") String roll_no, @Param("roll_typeid") String roll_typeid, @Param("dbegino") String dbegino, @Param("dendo") String dendo, @Param("dbeging") String dbeging, @Param("dendg") String dendg, @Param("oc") Long oc);


    List<RollWlcc> findDataRollWlccByAll(@Param("roll_no") String roll_no, @Param("roll_typeid") String roll_typeid, @Param("dbegino") String dbegino, @Param("dendo") String dendo, @Param("dbeging") String dbeging, @Param("dendg") String dendg);


    List<RollWlcc> findDataRollWlccByTime(@Param("roll_no") String roll_no, @Param("grind_starttime") String grind_starttime);

    List<RollWlcc> findDataRollWlccAllByReason(@Param("roll_no") String roll_no, @Param("dbegin") String dbegin, @Param("dend") String dend);

    /**
     * 根据条件查看记录的总数
     *
     * @return 对象数据集合
     */
    /***
     * 根据主键查询信息
     * @param indocno 用户id
     * @return
     */
    RollWlcc findDataRollWlccByIndocno(@Param("indocno") Long indocno);

    /**
     * 查看记录
     *
     * @return 对象数据集合
     */
    List<RollWlcc> findDataRollWlcc();

    /**
     * 事故辊管理页面专用——根据封锁时间和辊号，查询磨削量不为0的正序三次下机时间不重复数据，重复的依旧显示
     * 查找三条数据中的最大时间
     *
     * @param roll_no     辊号
     * @param offlinetime 下线时间（封锁时间）
     * @return
     */
    String findtimes(@Param("roll_no") String roll_no, @Param("offlinetime") String offlinetime);

    /**
     * 事故辊管理页面专用——根据封锁时间和辊号，查询磨削量不为0的正序三次下机时间不重复数据，重复的依旧显示
     *
     * @param roll_no     辊号
     * @param offlinetime 下线时间（封锁时间）
     * @param times       三条数据中的最大时间
     * @return 数据集
     */
    List<RollWlcc> findOffline(@Param("roll_no") String roll_no, @Param("offlinetime") String offlinetime, @Param("times") String times);

    /**
     * 查找本次上下线对应的wlcc数据
     *
     * @param roll_no     辊号
     * @param onlinetime  上线时间
     * @param offlinetime 下线时间
     * @return 数据集
     */
    List<RollWlcc> findDataRollWlccByOnlineData(@Param("roll_no") String roll_no, @Param("onlinetime") String onlinetime, @Param("offlinetime") String offlinetime);

    /**
     * 根据辊号查找磨削开始时间最近的一条数据
     *
     * @param roll_no 辊号
     * @return 数据集
     */
    List<RollWlcc> findDataRollWlccByNew(String roll_no);

    /**
     * 根据条件查询数据
     *
     * @param roll_typeid  轧辊类型id
     * @param framerangeid 机架范围识别码
     * @param dbegin       开始时间
     * @param dend         结束时间
     * @return 数据集
     */
    List<RollWlcc> findBars(@Param("roll_typeid") Long roll_typeid, @Param("framerangeid") Long framerangeid, @Param("dbegin") String dbegin, @Param("dend") String dend);

    /**
     * 查找下一次磨削时间
     *
     * @param roll_no         辊号
     * @param grind_starttime 磨削开始时间
     */
    String findnexttimes(@Param("roll_no") String roll_no, @Param("grind_starttime") String grind_starttime);

    List<RollWlcche> findDataRollWlcccharts(@Param("dbeging") String dbeging, @Param("dendg") String dendg);

    RollWlcche findDataRollaccident(@Param("machine_no") String machine_no, @Param("sgroup") String sgroup, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    List<RollWlcche> findDataRollchao(@Param("machine_no") String machine_no, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    List<RollWlcche> findDataRollWlcccharts_b(@Param("dbeging") String dbeging, @Param("dendg") String dendg);

    List<RollWlcche> findDataRollchao_a(@Param("machine_no") String machine_no, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    List<RollWlcche> find3_4nomal(@Param("machine_no") String machine_no, @Param("sgroup") String sgroup, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    RollWlcche findDataRollchao_table(@Param("machine_no") String machine_no, @Param("sgroup") String sgroup, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    List<RollWlcche> find1_2nomal(@Param("machine_no") String machine_no, @Param("sgroup") String sgroup, @Param("dbeging") String dbeging, @Param("dendg") String dendg);

    /**
     * 查找数据是否已经存在
     *
     * @param roll_no         辊号
     * @param grind_starttime 磨削开始时间
     * @param grind_endtime   磨削结束时间
     */
    List<RollWlcc> findDataHave(@Param("roll_no") String roll_no, @Param("grind_starttime") String grind_starttime, @Param("grind_endtime") String grind_endtime);

    /**
     * 按年和类型查询数据——年消耗专用
     *
     * @param roll_no    类型名称
     * @param frame_noid 机架号(区别FW1-4，FW5-7专用)
     * @param years      年
     */
    List<RollWlcc> findInYear(@Param("roll_no") String roll_no, @Param("frame_noid") Long frame_noid, @Param("years") String years);

    List<RollWlcc> findDataRollWlccForGrinding(@Param("roll_no") String roll_no, @Param("dbegin") String dbegin, @Param("dend") String dend);

    Integer findExceedwearFBDataRollWlccCount(@Param("mslbz") double mslbz);

    List<RollWlcc> findsteel_a(@Param("dbeging") String dbeging, @Param("dendg") String dendg, @Param("frame") Long frame);

    RollWlcc find_ton(@Param("bga") String bga, @Param("bgb") String bgb);
    List<TEST1> findDataRollWlccByPage(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize);
    Integer findDataRollWlccByPageSize();

    //List<RollStiffness> findTablenew(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("dbegin") String dbegin, @Param("dend") String dend, @Param("production_line_id") String production_line_id);

}
